home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / short20.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  49.7 KB  |  1,668 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "short.h"
  9. /*No:LOOP_INVARIANT.fz_bad_assertion*/
  10. T0* r213runnable(T0* a1,T0* a2,T0* a3){
  11. T0* R=NULL;
  12. T0* _a=NULL;
  13. int _i=0;
  14. /*IF*/if (!(r608empty(((T608*)a1)))) {
  15. R=r608twin(((T608*)a1));
  16. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  17. while (!((_i)==(0))) {
  18. r604push(((T604*)(oBC364small_eiffel)),a3);
  19. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  20. /*IF*/if ((_a)==((void*)(NULL))) {
  21. r213error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  22. }
  23. else {
  24. /*[IRF3.6put*/{T608* C1=((T608*)R);
  25. T0* b1=_a;
  26. int b2=_i;
  27. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  28. }/*]*/
  29. }
  30. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  31. _i=(_i)-(1);
  32. }
  33. }
  34. /*FI*/return R;
  35. }
  36. void r213make(T213* C,T0* a1,T0* a2,T0* a3){
  37. C->_start_position=a1;
  38. C->_header_comment=a2;
  39. C->_list=a3;
  40. }
  41. /*No:LOOP_INVARIANT.nb_errors*/
  42. /*No:LOOP_INVARIANT.start_position*/
  43. T0* r213to_runnable(T213* C,T0* a1){
  44. T0* R=NULL;
  45. /*IF*/if (((((T213*)C))->_current_type/*12*/)==((void*)(NULL))) {
  46. C->_current_type=a1;
  47. /*IF*/if (((((T213*)C))->_list/*8*/)!=((void*)(NULL))) {
  48. C->_list=r213runnable((((T213*)C))->_list/*8*/,a1,r604top_rf(((T604*)(oBC364small_eiffel))));
  49. }
  50. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  51. R=(T0*)C;
  52. }
  53. /*FI*/}
  54. else {
  55. R=r213twin(C);
  56. /*[IRF3.3set_current_type*/((((T213*)(((T213*)R))))->_current_type)=(NULL);
  57. /*]*/
  58. R=r213to_runnable(((T213*)R),a1);
  59. }
  60. /*FI*/return R;
  61. }
  62. T0* r213twin(T213* C){
  63. T0* R=NULL;
  64. R=malloc(sizeof(*C));
  65. *((T213*)R)=*C;
  66. return R;
  67. }
  68. /*No:LOOP_INVARIANT.set_current_type*/
  69. /*No:LOOP_INVARIANT.list*/
  70. /*No:LOOP_INVARIANT.current_type*/
  71. /*No:LOOP_INVARIANT.header_comment*/
  72. void r213error(T0* a1,T0* a2){
  73. r683add_position(a1);
  74. r683error(((T683*)(oBC364eh)),a2);
  75. }
  76. int fBC364type_character_ref=0;
  77. T0*oBC364type_character_ref=NULL;
  78. T0* r252type_character_ref(void){
  79. if (fBC364type_character_ref==0){
  80. T0* R=NULL;
  81. T0* _character_ref=NULL;
  82. fBC364type_character_ref=1;
  83. {T451*n=malloc(sizeof(*n));
  84. *n=M451;
  85. r451make(n,((T0*)ms9_473),NULL);
  86. _character_ref=(T0*)n;
  87. }
  88. {T657*n=malloc(sizeof(*n));
  89. *n=M657;
  90. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_character_ref);
  91. /*]*/
  92. R=(T0*)n;
  93. }
  94. oBC364type_character_ref=R;}
  95. return oBC364type_character_ref;}
  96. void r252short(T252* C){
  97. r580hook(((T580*)(oBC364short_print)),((T0*)ms1_291));
  98. /*[IRF3.6short_hook*/{T252* C1=C;
  99. r580a_class_name(((T580*)(oBC364short_print)),(((T252*)C1))->_base_class_name/*4*/);
  100. }/*]*/
  101. r580hook(((T580*)(oBC364short_print)),((T0*)ms2_291));
  102. }
  103. int r252has_creation(T252* C,T0* a1){
  104. int R=0;
  105. r683add_position(X776start_position(a1));
  106. r252error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T252*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
  107. return R;
  108. }
  109. /*No:TYPE_CHARACTER.is_anchored*/
  110. /*No:TYPE_CHARACTER.us_character_ref*/
  111. /*No:TYPE_CHARACTER.is_array*/
  112. int r252is_a(T252* C,T0* a1){
  113. int R=0;
  114. /*IF*/if (X291is_character(a1)) {
  115. R=1;
  116. }
  117. else {
  118. R=r605is_subclass_of(((T605*)(r252base_class(C))),X291base_class(a1));
  119. /*IF*/if (R) {
  120. r252used_as_reference();
  121. }
  122. /*FI*/}
  123. /*FI*//*IF*/if (!(R)) {
  124. r683add_type((T0*)C,((T0*)ms71_470));
  125. r683add_type(a1,((T0*)ms67_470));
  126. }
  127. /*FI*/return R;
  128. }
  129. /*No:TYPE_CHARACTER.run_type*/
  130. /*No:TYPE_CHARACTER.is_pointer*/
  131. /*No:TYPE_CHARACTER.is_string*/
  132. /*No:TYPE_CHARACTER.is_like_feature*/
  133. /*No:TYPE_CHARACTER.is_like_current*/
  134. void r252make(T252* C,T0* a1){
  135. {T451*n=malloc(sizeof(*n));
  136. *n=M451;
  137. r451make(n,((T0*)ms8_473),a1);
  138. C->_base_class_name=(T0*)n;
  139. }
  140. }
  141. /*No:TYPE_CHARACTER.nb_errors*/
  142. /*No:TYPE_CHARACTER.us_item*/
  143. void r252load_ref(T0* a1){
  144. T0* _rf=NULL;
  145. T0* _rc=NULL;
  146. T0* _cn=NULL;
  147. {T451*n=malloc(sizeof(*n));
  148. *n=M451;
  149. r451make(n,a1,NULL);
  150. _cn=(T0*)n;
  151. }
  152. _rc=r605run_class(((T605*)(r451base_class(((T451*)_cn)))));
  153. r368set_at_run_time(((T368*)_rc));
  154. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms86_473));
  155. }
  156. int fBC252check_type=0;
  157. void r252check_type(T252* C){
  158. if (fBC252check_type==0){
  159. T0* _rc=NULL;
  160. T0* _bc=NULL;
  161. fBC252check_type=1;
  162. _bc=r252base_class(C);
  163. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  164. _rc=r252run_class(C);
  165. }
  166. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  167. /*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
  168. r252error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T252*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_252));
  169. }
  170. /*FI*/}
  171. /*FI*/}}
  172. /*No:TYPE_CHARACTER.start_position*/
  173. /*No:TYPE_CHARACTER.fz_inako*/
  174. /*No:TYPE_CHARACTER.is_character*/
  175. T0* r252written_mark(void){
  176. T0* R=NULL;
  177. R=((T0*)ms8_473);
  178. return R;
  179. }
  180. /*No:TYPE_CHARACTER.is_run_type*/
  181. T0* r252to_runnable(T252* C,T0* a1){
  182. T0* R=NULL;
  183. R=(T0*)C;
  184. r252check_type(C);
  185. return R;
  186. }
  187. T0* r252generic_list(T252* C){
  188. T0* R=NULL;
  189. r252fatal_error_generic_list(C);
  190. return R;
  191. }
  192. /*No:TYPE_CHARACTER.is_formal_generic*/
  193. /*No:TYPE_CHARACTER.is_real*/
  194. /*No:TYPE_CHARACTER.us_character*/
  195. /*No:TYPE_CHARACTER.is_bit*/
  196. void r252fatal_error_generic_list(T252* C){
  197. r683add_type((T0*)C,((T0*)ms12_291));
  198. r683print_as_fatal_error(((T683*)(oBC364eh)));
  199. }
  200. T0* r252smallest_ancestor(T252* C,T0* a1){
  201. T0* R=NULL;
  202. T0* _rto=NULL;
  203. _rto=X291run_type(a1);
  204. /*IF*/if (X291is_character(_rto)) {
  205. R=(T0*)C;
  206. }
  207. else {
  208. R=r657smallest_ancestor(((T657*)(r252type_character_ref())),_rto);
  209. }
  210. /*FI*/return R;
  211. }
  212. /*No:TYPE_CHARACTER.is_boolean*/
  213. /*No:TYPE_CHARACTER.is_double*/
  214. T0* r252run_class(T252* C){
  215. T0* R=NULL;
  216. R=r604run_class((T0*)C);
  217. return R;
  218. }
  219. T0* r252run_time_mark(void){
  220. T0* R=NULL;
  221. R=((T0*)ms8_473);
  222. return R;
  223. }
  224. int r252is_a_in(T252* C,T0* a1,T0* a2){
  225. int R=0;
  226. T0* _ct=NULL;
  227. T0* _t2=NULL;
  228. T0* _t1=NULL;
  229. /*IF*/if ((r252written_mark())==((void*)(X291written_mark(a1)))) {
  230. R=1;
  231. }
  232. else {
  233. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  234. _t1=r252to_runnable(C,_ct);
  235. _t2=X291to_runnable(a1,_ct);
  236. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  237. R=1;
  238. }
  239. else {
  240. R=X291is_a(_t1,_t2);
  241. }
  242. /*FI*/}
  243. /*FI*/return R;
  244. }
  245. T0* r252look_up_for(T252* C,T0* a1,T0* a2){
  246. T0* R=NULL;
  247. R=r605look_up_for(((T605*)(r252base_class(C))),a1,a2);
  248. return R;
  249. }
  250. /*No:TYPE_CHARACTER.expanded_initializer*/
  251. /*No:TYPE_CHARACTER.fz_dot*/
  252. /*No:TYPE_CHARACTER.is_generic*/
  253. int fBC252used_as_reference=0;
  254. void r252used_as_reference(void){
  255. if (fBC252used_as_reference==0){
  256. fBC252used_as_reference=1;
  257. r252load_ref(((T0*)ms9_473));
  258. }}
  259. /*No:TYPE_CHARACTER.is_reference*/
  260. void r252error(T0* a1,T0* a2){
  261. r683add_position(a1);
  262. r683error(((T683*)(oBC364eh)),a2);
  263. }
  264. T0* r252base_class(T252* C){
  265. T0* R=NULL;
  266. T0* _bcn=NULL;
  267. _bcn=(((T252*)C))->_base_class_name/*4*/;
  268. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  269. R=r451base_class(((T451*)_bcn));
  270. }
  271. else {
  272. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  273. r7append(((T7*)(oBC683explanation)),b1);
  274. }/*]*/
  275. r683add_type((T0*)C,((T0*)ms67_470));
  276. r683print_as_fatal_error(((T683*)(oBC364eh)));
  277. }
  278. /*FI*/return R;
  279. }
  280. /*No:TYPE_CHARACTER.short_hook*/
  281. /*No:TYPE_CHARACTER.is_any*/
  282. /*No:TYPE_CHARACTER.base_class_name*/
  283. /*No:TYPE_CHARACTER.is_expanded*/
  284. /*No:TYPE_CHARACTER.is_basic_eiffel_expanded*/
  285. /*No:TYPE_CHARACTER.is_none*/
  286. /*No:TYPE_CHARACTER.is_integer*/
  287. void r633short(T633* C){
  288. int _i=0;
  289. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms3_633),((T0*)ms4_633));
  290. /*IF*/if (((((T633*)C))->_header_comment/*4*/)==((void*)(NULL))) {
  291. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms5_633),((T0*)ms6_633));
  292. }
  293. else {
  294. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms7_633),((T0*)ms8_633));
  295. r393short(((T393*)((((T633*)C))->_header_comment/*4*/)),((T0*)ms9_633),((T0*)ms10_633),((T0*)ms11_633),((T0*)ms12_633));
  296. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms13_633),((T0*)ms14_633));
  297. }
  298. /*FI*//*IF*/if (((((T633*)C))->_list/*8*/)==((void*)(NULL))) {
  299. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms15_633),((T0*)ms16_633));
  300. }
  301. else {
  302. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms17_633),((T0*)ms18_633));
  303. _i=1;
  304. while (!((_i)==((((T608*)((T608*)((((T633*)C))->_list/*8*/))))->_upper/*8*/))) {
  305. r348short(((T348*)(r608item(((T608*)((((T633*)C))->_list/*8*/)),_i))),((T0*)ms19_633),((T0*)ms20_633),((T0*)ms21_633),((T0*)ms22_633),((T0*)ms23_633),((T0*)ms24_633),((T0*)ms25_633),((T0*)ms26_633),((T0*)ms27_633),((T0*)ms28_633),((T0*)ms29_633),((T0*)ms30_633),((T0*)ms31_633),((T0*)ms32_633),((T0*)ms33_633),((T0*)ms34_633),((T0*)ms35_633),((T0*)ms36_633),((T0*)ms37_633),((T0*)ms38_633),((T0*)ms39_633),((T0*)ms40_633),((T0*)ms41_633),((T0*)ms42_633),((T0*)ms43_633),((T0*)ms44_633));
  306. _i=(_i)+(1);
  307. }
  308. r348short(((T348*)(r608item(((T608*)((((T633*)C))->_list/*8*/)),_i))),((T0*)ms45_633),((T0*)ms46_633),((T0*)ms47_633),((T0*)ms48_633),((T0*)ms49_633),((T0*)ms50_633),((T0*)ms51_633),((T0*)ms52_633),((T0*)ms53_633),((T0*)ms54_633),((T0*)ms55_633),((T0*)ms56_633),((T0*)ms57_633),((T0*)ms58_633),((T0*)ms59_633),((T0*)ms60_633),((T0*)ms61_633),((T0*)ms62_633),((T0*)ms63_633),((T0*)ms64_633),((T0*)ms65_633),((T0*)ms66_633),((T0*)ms67_633),((T0*)ms68_633),((T0*)ms69_633),((T0*)ms70_633));
  309. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms71_633),((T0*)ms72_633));
  310. }
  311. /*FI*/r580hook_or(((T580*)(oBC364short_print)),((T0*)ms73_633),((T0*)ms74_633));
  312. }
  313. void r633add_into(T633* C,T0* a1){
  314. T0* _a=NULL;
  315. int _i=0;
  316. /*IF*/if (((((T633*)C))->_list/*8*/)!=((void*)(NULL))) {
  317. _i=1;
  318. while (!((_i)>((((T608*)((T608*)((((T633*)C))->_list/*8*/))))->_upper/*8*/))) {
  319. _a=r608item(((T608*)((((T633*)C))->_list/*8*/)),_i);
  320. /*IF*/if (!(r608fast_has(((T608*)a1),_a))) {
  321. r608add_last(((T608*)a1),_a);
  322. }
  323. /*FI*/_i=(_i)+(1);
  324. }
  325. }
  326. /*FI*/}
  327. void r633from_runnable(T633* C,T0* a1){
  328. C->_list=a1;
  329. C->_current_type=(((T348*)((T348*)(r608item(((T608*)((((T633*)C))->_list/*8*/)),1)))))->_current_type/*12*/;
  330. }
  331. void r633make(T633* C,T0* a1,T0* a2,T0* a3){
  332. C->_start_position=a1;
  333. C->_header_comment=a2;
  334. C->_list=a3;
  335. }
  336. /*No:E_ENSURE.set_header_comment*/
  337. /*No:E_ENSURE.start_position*/
  338. /*No:E_ENSURE.set_ensure_then*/
  339. /*No:E_ENSURE.list*/
  340. /*No:E_ENSURE.current_type*/
  341. /*No:E_ENSURE.is_ensure_then*/
  342. /*No:E_ENSURE.header_comment*/
  343. void r283short(T283* C){
  344. r580hook(((T580*)(oBC364short_print)),((T0*)ms1_291));
  345. /*[IRF3.6short_hook*/{T283* C1=C;
  346. r580a_class_name(((T580*)(oBC364short_print)),(((T283*)C1))->_formal_name/*4*/);
  347. }/*]*/
  348. r580hook(((T580*)(oBC364short_print)),((T0*)ms2_291));
  349. }
  350. int r283has_creation(T283* C,T0* a1){
  351. int R=0;
  352. /*IF*/if ((C)==((void*)((((T283*)C))->_run_type/*12*/))) {
  353. R=r605has_creation(((T605*)(r283base_class(C))),a1);
  354. }
  355. else {
  356. R=X291has_creation((((T283*)C))->_run_type/*12*/,a1);
  357. }
  358. /*FI*/return R;
  359. }
  360. /*No:TYPE_FORMAL_GENERIC.is_anchored*/
  361. int r283is_array(T283* C){
  362. int R=0;
  363. R=X291is_array((((T283*)C))->_run_type/*12*/);
  364. return R;
  365. }
  366. int r283is_a(T283* C,T0* a1){
  367. int R=0;
  368. R=X291is_a((((T283*)C))->_run_type/*12*/,a1);
  369. return R;
  370. }
  371. int r283is_pointer(T283* C){
  372. int R=0;
  373. R=X291is_pointer((((T283*)C))->_run_type/*12*/);
  374. return R;
  375. }
  376. /*No:TYPE_FORMAL_GENERIC.run_type*/
  377. int r283is_string(T283* C){
  378. int R=0;
  379. R=X291is_string((((T283*)C))->_run_type/*12*/);
  380. return R;
  381. }
  382. /*No:TYPE_FORMAL_GENERIC.is_like_feature*/
  383. /*No:TYPE_FORMAL_GENERIC.is_like_current*/
  384. void r283make(T283* C,T0* a1,int a2){
  385. C->_rank=a2;
  386. C->_formal_name=a1;
  387. }
  388. /*No:TYPE_FORMAL_GENERIC.formal_name*/
  389. /*No:TYPE_FORMAL_GENERIC.start_position*/
  390. int r283is_character(T283* C){
  391. int R=0;
  392. R=X291is_character((((T283*)C))->_run_type/*12*/);
  393. return R;
  394. }
  395. /*No:TYPE_FORMAL_GENERIC.written_mark*/
  396. /*No:TYPE_FORMAL_GENERIC.is_run_type*/
  397. T0* r283to_runnable(T283* C,T0* a1){
  398. T0* R=NULL;
  399. T0* _gl=NULL;
  400. T0* _t=NULL;
  401. T0* _p=NULL;
  402. T0* _bc_ct=NULL;
  403. T0* _bc_written=NULL;
  404. _bc_written=r627base_class(((T627*)(/*(IRF4.6start_position*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_start_position/*4*//*)*/)));
  405. _bc_ct=X291base_class(a1);
  406. /*IF*/if ((_bc_written)==((void*)(_bc_ct))) {
  407. _gl=X291generic_list(a1);
  408. /*IF*/if (((_gl)==((void*)(NULL)))||(((((T283*)C))->_rank/*8*/)>((((T701*)((T701*)_gl)))->_upper/*8*/))) {
  409. r683add_position(X291start_position(a1));
  410. r683add_position(/*(IRF4.6start_position*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_start_position/*4*//*)*/);
  411. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms61_470);
  412. r683fatal_error(((T683*)(oBC364eh)),b1);
  413. }/*]*/
  414. }
  415. else {
  416. R=r283make_runnable(C,r701item(((T701*)_gl),(((T283*)C))->_rank/*8*/));
  417. }
  418. /*FI*/}
  419. else {
  420. _p=/*(IRF4.6first_parent_for*/r686first_parent_for(((T686*)((((T605*)((T605*)_bc_ct)))->_parent_list/*40*/)),_bc_written)/*)*/;
  421. while (!((_p)==((void*)(NULL)))) {
  422. _t=(((T877*)((T877*)_p)))->_type/*4*/;
  423. _t=X291run_type(X291to_runnable(_t,a1));
  424. /*IF*/if ((R)==((void*)(NULL))) {
  425. R=r283to_runnable(C,_t);
  426. _p=NULL;
  427. }
  428. else {
  429. _p=/*(IRF4.6next_parent_for*/r686next_parent_for(((T686*)((((T605*)((T605*)_bc_ct)))->_parent_list/*40*/)),_bc_written,_p)/*)*/;
  430. }
  431. /*FI*/}
  432. /*IF*/if ((R)==((void*)(NULL))) {
  433. r683add_type(a1,((T0*)ms1_283));
  434. r283warning(/*(IRF4.6start_position*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms2_283));
  435. }
  436. /*FI*/}
  437. /*FI*/return R;
  438. }
  439. /*No:TYPE_FORMAL_GENERIC.rank*/
  440. T0* r283generic_list(T283* C){
  441. T0* R=NULL;
  442. /*IF*/if (r283is_generic(C)) {
  443. R=X291generic_list((((T283*)C))->_run_type/*12*/);
  444. }
  445. else {
  446. r283fatal_error_generic_list(C);
  447. }
  448. /*FI*/return R;
  449. }
  450. /*No:TYPE_FORMAL_GENERIC.is_formal_generic*/
  451. int r283is_real(T283* C){
  452. int R=0;
  453. R=X291is_real((((T283*)C))->_run_type/*12*/);
  454. return R;
  455. }
  456. T0* r283twin(T283* C){
  457. T0* R=NULL;
  458. R=malloc(sizeof(*C));
  459. *((T283*)R)=*C;
  460. return R;
  461. }
  462. /*No:TYPE_FORMAL_GENERIC.fz_bnga*/
  463. T0* r283formal_arg(T283* C){
  464. T0* R=NULL;
  465. R=/*(IRF4.6item*/r681item(((T681*)((((T881*)((T881*)(r283formal_generic_list(C)))))->_list/*4*/)),(((T283*)C))->_rank/*8*/)/*)*/;
  466. return R;
  467. }
  468. int r283is_bit(T283* C){
  469. int R=0;
  470. R=X291is_bit((((T283*)C))->_run_type/*12*/);
  471. return R;
  472. }
  473. void r283fatal_error_generic_list(T283* C){
  474. r683add_type((T0*)C,((T0*)ms12_291));
  475. r683print_as_fatal_error(((T683*)(oBC364eh)));
  476. }
  477. T0* r283smallest_ancestor(T283* C,T0* a1){
  478. T0* R=NULL;
  479. R=X291smallest_ancestor((((T283*)C))->_run_type/*12*/,a1);
  480. return R;
  481. }
  482. /*No:TYPE_FORMAL_GENERIC.set_run_type*/
  483. int r283is_boolean(T283* C){
  484. int R=0;
  485. R=X291is_boolean((((T283*)C))->_run_type/*12*/);
  486. return R;
  487. }
  488. int r283is_double(T283* C){
  489. int R=0;
  490. R=X291is_double((((T283*)C))->_run_type/*12*/);
  491. return R;
  492. }
  493. T0* r283run_class(T283* C){
  494. T0* R=NULL;
  495. R=r604run_class((((T283*)C))->_run_type/*12*/);
  496. return R;
  497. }
  498. T0* r283run_time_mark(T283* C){
  499. T0* R=NULL;
  500. R=X291run_time_mark((((T283*)C))->_run_type/*12*/);
  501. return R;
  502. }
  503. int r283is_a_in(T283* C,T0* a1,T0* a2){
  504. int R=0;
  505. T0* _ct=NULL;
  506. T0* _t2=NULL;
  507. T0* _t1=NULL;
  508. /*IF*/if ((/*(IRF4.6written_mark*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_to_string/*0*//*)*/)==((void*)(X291written_mark(a1)))) {
  509. R=1;
  510. }
  511. else {
  512. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  513. _t1=r283to_runnable(C,_ct);
  514. _t2=X291to_runnable(a1,_ct);
  515. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  516. R=1;
  517. }
  518. else {
  519. R=X291is_a(_t1,_t2);
  520. }
  521. /*FI*/}
  522. /*FI*/return R;
  523. }
  524. T0* r283look_up_for(T283* C,T0* a1,T0* a2){
  525. T0* R=NULL;
  526. R=r605look_up_for(((T605*)(r283base_class(C))),a1,a2);
  527. return R;
  528. }
  529. T0* r283constraint(T283* C){
  530. T0* R=NULL;
  531. R=(((T33*)((T33*)(r283formal_arg(C)))))->_constraint/*4*/;
  532. return R;
  533. }
  534. T0* r283expanded_initializer(T283* C){
  535. T0* R=NULL;
  536. R=X291expanded_initializer((((T283*)C))->_run_type/*12*/);
  537. return R;
  538. }
  539. /*No:TYPE_FORMAL_GENERIC.fz_dot*/
  540. int r283is_generic(T283* C){
  541. int R=0;
  542. R=X291is_generic((((T283*)C))->_run_type/*12*/);
  543. return R;
  544. }
  545. /*No:TYPE_FORMAL_GENERIC.fz_bga*/
  546. /*No:TYPE_FORMAL_GENERIC.used_as_reference*/
  547. T0* r283formal_generic_list(T283* C){
  548. T0* R=NULL;
  549. R=(((T605*)((T605*)(r627base_class(((T627*)(/*(IRF4.6start_position*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_start_position/*4*//*)*/)))))))->_formal_generic_list/*28*/;
  550. return R;
  551. }
  552. int r283is_reference(T283* C){
  553. int R=0;
  554. R=X291is_reference((((T283*)C))->_run_type/*12*/);
  555. return R;
  556. }
  557. void r283error(T0* a1,T0* a2){
  558. r683add_position(a1);
  559. r683error(((T683*)(oBC364eh)),a2);
  560. }
  561. T0* r283base_class(T283* C){
  562. T0* R=NULL;
  563. T0* _bcn=NULL;
  564. _bcn=r283base_class_name(C);
  565. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  566. R=r451base_class(((T451*)_bcn));
  567. }
  568. else {
  569. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  570. r7append(((T7*)(oBC683explanation)),b1);
  571. }/*]*/
  572. r683add_type((T0*)C,((T0*)ms67_470));
  573. r683print_as_fatal_error(((T683*)(oBC364eh)));
  574. }
  575. /*FI*/return R;
  576. }
  577. /*No:TYPE_FORMAL_GENERIC.fatal_error*/
  578. /*No:TYPE_FORMAL_GENERIC.short_hook*/
  579. int r283is_any(T283* C){
  580. int R=0;
  581. R=X291is_any((((T283*)C))->_run_type/*12*/);
  582. return R;
  583. }
  584. T0* r283base_class_name(T283* C){
  585. T0* R=NULL;
  586. R=X291base_class_name((((T283*)C))->_run_type/*12*/);
  587. return R;
  588. }
  589. int r283is_expanded(T283* C){
  590. int R=0;
  591. R=X291is_expanded((((T283*)C))->_run_type/*12*/);
  592. return R;
  593. }
  594. int r283is_basic_eiffel_expanded(T283* C){
  595. int R=0;
  596. R=X291is_basic_eiffel_expanded((((T283*)C))->_run_type/*12*/);
  597. return R;
  598. }
  599. int r283is_none(T283* C){
  600. int R=0;
  601. R=X291is_none((((T283*)C))->_run_type/*12*/);
  602. return R;
  603. }
  604. int r283is_integer(T283* C){
  605. int R=0;
  606. R=X291is_integer((((T283*)C))->_run_type/*12*/);
  607. return R;
  608. }
  609. void r283warning(T0* a1,T0* a2){
  610. r683add_position(a1);
  611. r683warning(((T683*)(oBC364eh)),a2);
  612. }
  613. T0* r283make_runnable(T283* C,T0* a1){
  614. T0* R=NULL;
  615. T0* _rt2=NULL;
  616. _rt2=X291run_type(a1);
  617. /*IF*/if ((_rt2)==((void*)(NULL))) {
  618. /*IF*/if ((a1)!=((void*)(NULL))) {
  619. r683add_position(X291start_position(a1));
  620. }
  621. /*FI*/r283error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms59_470));
  622. }
  623.  else if (((((T283*)C))->_run_type/*12*/)==((void*)(NULL))) {
  624. C->_run_type=_rt2;
  625. R=(T0*)C;
  626. }
  627. else {
  628. R=r283twin(C);
  629. /*[IRF3.3set_run_type*/((((T283*)(((T283*)R))))->_run_type)=(_rt2);
  630. /*]*/
  631. }
  632. /*FI*/return R;
  633. }
  634. void r33short(T33* C){
  635. r580a_class_name(((T580*)(oBC364short_print)),(((T33*)C))->_name/*0*/);
  636. /*IF*/if (/*(IRF4.7constrained*/((((T33*)C))->_constraint/*4*/)!=(NULL)/*)*/) {
  637. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms2_33),((T0*)ms3_33));
  638. X291short((((T33*)C))->_constraint/*4*/);
  639. }
  640. /*FI*/}
  641. void r33make(T33* C,T0* a1,T0* a2){
  642. C->_name=a1;
  643. C->_constraint=a2;
  644. }
  645. /*No:FORMAL_GENERIC_ARG.name*/
  646. /*No:FORMAL_GENERIC_ARG.start_position*/
  647. /*No:FORMAL_GENERIC_ARG.constrained*/
  648. /*No:FORMAL_GENERIC_ARG.constraint*/
  649. /*No:CALL_INFIX_PLUS.arguments*/
  650. void r253short(T253* C){
  651. /*IF*/if ((X662precedence((((T253*)C))->_target/*8*/))==(13)) {
  652. X662short((((T253*)C))->_target/*8*/);
  653. /*[IRF3.6short_print_feature_name*/{T253* C1=C;
  654. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T253*)C1))->_feature_name/*24*/);
  655. }/*]*/
  656. /*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  657. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/);
  658. }
  659.  else if ((7)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/))) {
  660. X662bracketed_short(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/);
  661. }
  662. else {
  663. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/);
  664. }
  665. /*FI*/}
  666.  else if ((X662precedence((((T253*)C))->_target/*8*/))<(7)) {
  667. X662bracketed_short((((T253*)C))->_target/*8*/);
  668. /*[IRF3.6short_print_feature_name*/{T253* C1=C;
  669. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T253*)C1))->_feature_name/*24*/);
  670. }/*]*/
  671. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/);
  672. }
  673. else {
  674. X662short((((T253*)C))->_target/*8*/);
  675. /*[IRF3.6short_print_feature_name*/{T253* C1=C;
  676. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T253*)C1))->_feature_name/*24*/);
  677. }/*]*/
  678. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/);
  679. }
  680. /*FI*/}
  681. T0* r253add_comment(T253* C,T0* a1){
  682. T0* R=NULL;
  683. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  684. R=(T0*)C;
  685. }
  686. else {
  687. {T529*n=malloc(sizeof(*n));
  688. *n=M529;
  689. r529make(n,(T0*)C,a1);
  690. R=(T0*)n;
  691. }
  692. }
  693. /*FI*/return R;
  694. }
  695. int r253to_integer(T253* C){
  696. int R=0;
  697. r253error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T253*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  698. return R;
  699. }
  700. void r253bracketed_short(T253* C){
  701. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  702. r253short(C);
  703. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  704. }
  705. int r253is_a(T253* C,T0* a1){
  706. int R=0;
  707. R=X291is_a(X291run_type((((T253*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  708. /*IF*/if (!(R)) {
  709. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T253*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  710. r253error(X662start_position(a1),((T0*)ms4_662));
  711. }
  712. /*FI*/return R;
  713. }
  714. /*No:CALL_INFIX_PLUS.is_current*/
  715. void r253make(T253* C,T0* a1,T0* a2,T0* a3){
  716. T0* _eal=NULL;
  717. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  718. r683add_position(a2);
  719. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  720. r683fatal_error(((T683*)(oBC364eh)),b1);
  721. }/*]*/
  722. }
  723. /*FI*/{T454*n=malloc(sizeof(*n));
  724. *n=M454;
  725. r454make(n,r253operator(),a2);
  726. C->_feature_name=(T0*)n;
  727. }
  728. {T431*n=malloc(sizeof(*n));
  729. *n=M431;
  730. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  731. /*]*/
  732. _eal=(T0*)n;
  733. }
  734. r253make_call_1(C,a1,(((T253*)C))->_feature_name/*24*/,_eal);
  735. }
  736. /*No:CALL_INFIX_PLUS.nb_errors*/
  737. /*No:CALL_INFIX_PLUS.feature_name*/
  738. /*No:CALL_INFIX_PLUS.fz_iinaiv*/
  739. /*No:CALL_INFIX_PLUS.run_feature*/
  740. /*No:CALL_INFIX_PLUS.start_position*/
  741. /*No:CALL_INFIX_PLUS.target*/
  742. /*No:CALL_INFIX_PLUS.precedence*/
  743. T0* r253to_runnable(T253* C,T0* a1){
  744. T0* R=NULL;
  745. T0* _tla=NULL;
  746. T0* _a=NULL;
  747. /*IF*/if (((((T253*)C))->_current_type/*4*/)==((void*)(NULL))) {
  748. r253to_runnable_0(C,a1);
  749. _a=r431to_runnable(((T431*)((((T253*)C))->_arguments/*20*/)),a1);
  750. /*IF*/if ((_a)==((void*)(NULL))) {
  751. r253error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
  752. }
  753. else {
  754. C->_arguments=_a;
  755. }
  756. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  757. r431match_with(((T431*)((((T253*)C))->_arguments/*20*/)),(((T253*)C))->_run_feature/*12*/);
  758. }
  759. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  760. _tla=(((T253*)C))->_result_type/*16*/;
  761. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  762. case 239: 
  763. break;
  764. default:
  765. _tla=NULL;
  766. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  767. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T253*)C))->_arguments/*20*/)))/*)*/));
  768. }
  769. /*FI*/}
  770. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  771. R=(T0*)C;
  772. }
  773. /*FI*/}
  774. else {
  775. R=r253twin(C);
  776. /*[IRF3.3set_current_type*/((((T253*)(((T253*)R))))->_current_type)=(NULL);
  777. /*]*/
  778. R=r253to_runnable(((T253*)R),a1);
  779. }
  780. /*FI*/return R;
  781. }
  782. /*No:CALL_INFIX_PLUS.short_print_feature_name*/
  783. /*No:CALL_INFIX_PLUS.result_type*/
  784. T0* r253twin(T253* C){
  785. T0* R=NULL;
  786. R=malloc(sizeof(*C));
  787. *((T253*)R)=*C;
  788. return R;
  789. }
  790. /*No:CALL_INFIX_PLUS.set_current_type*/
  791. T0* r253operator(void){
  792. T0* R=NULL;
  793. R=((T0*)ms43_473);
  794. return R;
  795. }
  796. /*No:CALL_INFIX_PLUS.atomic_precedence*/
  797. /*No:CALL_INFIX_PLUS.current_type*/
  798. void r253make_call_1(T253* C,T0* a1,T0* a2,T0* a3){
  799. C->_target=a1;
  800. C->_feature_name=a2;
  801. C->_arguments=a3;
  802. }
  803. /*No:CALL_INFIX_PLUS.is_manifest_string*/
  804. /*No:CALL_INFIX_PLUS.is_void*/
  805. void r253to_runnable_0(T253* C,T0* a1){
  806. C->_current_type=a1;
  807. r253cpc_to_runnable(C,a1);
  808. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T253*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  809. /*IF*/if (((((T253*)C))->_result_type/*16*/)==((void*)(NULL))) {
  810. r683add_position(X496start_position((((T253*)C))->_run_feature/*12*/));
  811. r253error((((T454*)((T454*)((((T253*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  812. }
  813.  else if (X291is_like_current((((T253*)C))->_result_type/*16*/)) {
  814. C->_result_type=X662result_type((((T253*)C))->_target/*8*/);
  815. }
  816. /*FI*/}
  817. void r253cpc_to_runnable(T253* C,T0* a1){
  818. T0* _rc=NULL;
  819. T0* _t=NULL;
  820. _t=X662to_runnable((((T253*)C))->_target/*8*/,a1);
  821. /*IF*/if ((_t)==((void*)(NULL))) {
  822. r683add_position(X662start_position((((T253*)C))->_target/*8*/));
  823. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  824. r683fatal_error(((T683*)(oBC364eh)),b1);
  825. }/*]*/
  826. }
  827. /*FI*/C->_target=_t;
  828. _rc=X291run_class(X662result_type((((T253*)C))->_target/*8*/));
  829. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  830. r576update((((T253*)C))->_target/*8*/,(((T253*)C))->_run_feature/*12*/);
  831. }
  832. void r253error(T0* a1,T0* a2){
  833. r683add_position(a1);
  834. r683error(((T683*)(oBC364eh)),a2);
  835. }
  836. /*No:CALL_INFIX_PLUS.fatal_error*/
  837. /*No:CALL_INFIX_PLUS.fz_bad_argument*/
  838. /*No:CALL_INFIX_PLUS.us_plus*/
  839. void r253short_target(T253* C){
  840. r253bracketed_short(C);
  841. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  842. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  843. }/*]*/
  844. }
  845. /*No:CALL_INFIX_PLUS.arg1*/
  846. /*No:PARENT.us_none*/
  847. void r877multiple_check(T877* C,T0* a1){
  848. T0* _fn2=NULL;
  849. T0* _fn1=NULL;
  850. int _i=0;
  851. T0* _bc2=NULL;
  852. T0* _bc1=NULL;
  853. _bc1=X291base_class((((T877*)C))->_type/*4*/);
  854. _bc2=X291base_class((((T877*)((T877*)a1)))->_type/*4*/);
  855. /*IF*/if ((((_bc1)==((void*)(_bc2)))||(r605is_subclass_of(((T605*)_bc1),_bc2)))||(r605is_subclass_of(((T605*)_bc2),_bc1))) {
  856. /*IF*/if (((((T877*)C))->_redefine_list/*24*/)!=((void*)(NULL))) {
  857. _i=/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T877*)C))->_redefine_list/*24*/))))->_list/*0*/))))->_upper/*8*//*)*/;
  858. while (!((_i)==(0))) {
  859. _fn1=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T877*)C))->_redefine_list/*24*/))))->_list/*0*/)),_i)/*)*/;
  860. /*IF*/if (((((T877*)((T877*)a1)))->_rename_list/*12*/)==((void*)(NULL))) {
  861. }
  862.  else if (r644affect(((T644*)((((T877*)((T877*)a1)))->_rename_list/*12*/)),_fn1)) {
  863. _fn2=r644to_new_name(((T644*)((((T877*)((T877*)a1)))->_rename_list/*12*/)),_fn1);
  864. /*IF*/if ((_fn2)!=((void*)(_fn1))) {
  865. /*IF*/if (((((T877*)C))->_select_list/*28*/)!=((void*)(NULL))) {
  866. /*IF*/if (r953has(((T953*)((((T877*)C))->_select_list/*28*/)),_fn1)) {
  867. /*IF*/if (((((T877*)((T877*)a1)))->_select_list/*28*/)!=((void*)(NULL))) {
  868. /*IF*/if (r953has(((T953*)((((T877*)((T877*)a1)))->_select_list/*28*/)),_fn2)) {
  869. r877select_conflict(_fn1,_fn2);
  870. }
  871. /*FI*/}
  872. /*FI*/}
  873.  else if (((((T877*)((T877*)a1)))->_select_list/*28*/)==((void*)(NULL))) {
  874. r877missing_select(_fn1,_fn2);
  875. }
  876.  else if (!(r953has(((T953*)((((T877*)((T877*)a1)))->_select_list/*28*/)),_fn2))) {
  877. r877missing_select(_fn1,_fn2);
  878. }
  879. /*FI*/}
  880.  else if (((((T877*)((T877*)a1)))->_select_list/*28*/)==((void*)(NULL))) {
  881. r877missing_select(_fn1,_fn2);
  882. }
  883.  else if (!(r953has(((T953*)((((T877*)((T877*)a1)))->_select_list/*28*/)),_fn2))) {
  884. r877missing_select(_fn1,_fn2);
  885. }
  886. /*FI*/}
  887. /*FI*/}
  888. /*FI*/_i=(_i)-(1);
  889. }
  890. }
  891. /*FI*/}
  892. /*FI*/}
  893. /*No:PARENT.us_integer*/
  894. void r877get_started(T877* C,T0* a1){
  895. int _all_check=0;
  896. T0* _new_fn=NULL;
  897. T0* _old_fn=NULL;
  898. T0* _fn=NULL;
  899. T0* _pbc=NULL;
  900. T0* _wbc=NULL;
  901. int _i=0;
  902. _all_check=r590all_check(((T590*)(oBC364run_control)));
  903. C->_parent_list=a1;
  904. _pbc=X291base_class((((T877*)C))->_type/*4*/);
  905. _wbc=(((T686*)((T686*)((((T877*)C))->_parent_list/*0*/))))->_base_class/*0*/;
  906. /*IF*/if ((_all_check)&&(((((T877*)C))->_rename_list/*12*/)!=((void*)(NULL)))) {
  907. r644get_started(((T644*)((((T877*)C))->_rename_list/*12*/)),_pbc);
  908. }
  909. /*FI*//*IF*/if ((_all_check)&&(((((T877*)C))->_undefine_list/*20*/)!=((void*)(NULL)))) {
  910. _i=/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T877*)C))->_undefine_list/*20*/))))->_list/*0*/))))->_upper/*8*//*)*/;
  911. while (!((_i)==(0))) {
  912. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T877*)C))->_undefine_list/*20*/))))->_list/*0*/)),_i)/*)*/;
  913. _old_fn=r877get_old_name(C,_fn);
  914. /*IF*/if (((_old_fn)==((void*)(NULL)))&&(!(r605has(((T605*)_pbc),_fn)))) {
  915. r683add_position(X776start_position(_fn));
  916. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms9_877);
  917. r683fatal_error(((T683*)(oBC364eh)),b1);
  918. }/*]*/
  919. }
  920. /*FI*/_i=(_i)-(1);
  921. }
  922. }
  923. /*FI*//*IF*/if (((((T877*)C))->_redefine_list/*24*/)!=((void*)(NULL))) {
  924. _i=/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T877*)C))->_redefine_list/*24*/))))->_list/*0*/))))->_upper/*8*//*)*/;
  925. while (!((_i)==(0))) {
  926. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T877*)C))->_redefine_list/*24*/))))->_list/*0*/)),_i)/*)*/;
  927. /*IF*/if (!(r605proper_has(((T605*)_wbc),_fn))) {
  928. r683add_position(X776start_position(_fn));
  929. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms10_877);
  930. r683fatal_error(((T683*)(oBC364eh)),b1);
  931. }/*]*/
  932. }
  933. /*FI*//*IF*/if (_all_check) {
  934. _old_fn=r877get_old_name(C,_fn);
  935. /*IF*/if (((_old_fn)==((void*)(NULL)))&&(!(r605has(((T605*)_pbc),_fn)))) {
  936. r683add_position(X776start_position(_fn));
  937. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms11_877);
  938. r683fatal_error(((T683*)(oBC364eh)),b1);
  939. }/*]*/
  940. }
  941. /*FI*/}
  942. /*FI*/_i=(_i)-(1);
  943. }
  944. }
  945. /*FI*//*IF*/if ((_all_check)&&(((((T877*)C))->_select_list/*28*/)!=((void*)(NULL)))) {
  946. _i=/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T877*)C))->_select_list/*28*/))))->_list/*0*/))))->_upper/*8*//*)*/;
  947. while (!((_i)==(0))) {
  948. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T877*)C))->_select_list/*28*/))))->_list/*0*/)),_i)/*)*/;
  949. _old_fn=r877get_old_name(C,_fn);
  950. /*IF*/if (((_old_fn)==((void*)(NULL)))&&(!(r605has(((T605*)_pbc),_fn)))) {
  951. r683add_position(X776start_position(_fn));
  952. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms16_877);
  953. r683fatal_error(((T683*)(oBC364eh)),b1);
  954. }/*]*/
  955. }
  956. /*FI*/_new_fn=r877get_new_name(C,_fn);
  957. /*IF*/if ((_new_fn)!=((void*)(NULL))) {
  958. /*IF*/if ((r877get_old_name(C,_new_fn))==((void*)(NULL))) {
  959. r683add_position(X776start_position(_new_fn));
  960. r683add_position(X776start_position(_fn));
  961. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms16_877);
  962. r683fatal_error(((T683*)(oBC364eh)),b1);
  963. }/*]*/
  964. }
  965. /*FI*/}
  966. /*FI*/_i=(_i)-(1);
  967. }
  968. }
  969. /*FI*/}
  970. /*No:PARENT.select_list*/
  971. /*No:PARENT.undefine_memory1*/
  972. T0* r877get_new_name(T877* C,T0* a1){
  973. T0* R=NULL;
  974. /*IF*/if (((((T877*)C))->_rename_list/*12*/)!=((void*)(NULL))) {
  975. R=r644to_new_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a1);
  976. /*IF*/if ((R)==((void*)(a1))) {
  977. R=NULL;
  978. }
  979. /*FI*/}
  980. /*FI*/return R;
  981. }
  982. T0* r877get_old_name(T877* C,T0* a1){
  983. T0* R=NULL;
  984. /*IF*/if (((((T877*)C))->_rename_list/*12*/)!=((void*)(NULL))) {
  985. R=r644to_old_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a1);
  986. /*IF*/if ((R)==((void*)(a1))) {
  987. R=NULL;
  988. }
  989. /*FI*/}
  990. /*FI*/return R;
  991. }
  992. void r877make(T877* C,T0* a1){
  993. C->_type=a1;
  994. /*IF*/if (r52fast_has(((T52*)(oBC877forbidden_parent_list)),X291written_mark((((T877*)C))->_type/*4*/))) {
  995. r683add_position(X291start_position((((T877*)C))->_type/*4*/));
  996. /*[IRF3.6append*/{T0* b1=((T0*)ms1_877);
  997. r7append(((T7*)(oBC683explanation)),b1);
  998. }/*]*/
  999. /*[IRF3.6append*/{T0* b1=X291written_mark((((T877*)C))->_type/*4*/);
  1000. r7append(((T7*)(oBC683explanation)),b1);
  1001. }/*]*/
  1002. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_877);
  1003. r683fatal_error(((T683*)(oBC364eh)),b1);
  1004. }/*]*/
  1005. }
  1006. /*FI*/}
  1007. /*No:PARENT.rename_list*/
  1008. /*No:PARENT.parent_list*/
  1009. /*No:PARENT.us_pointer*/
  1010. void r877set_select(T877* C,T0* a1){
  1011. {T953*n=malloc(sizeof(*n));
  1012. *n=M953;
  1013. r953make(n,a1);
  1014. C->_select_list=(T0*)n;
  1015. }
  1016. }
  1017. /*No:PARENT.type*/
  1018. T0* r877going_down(T877* C,T0* a1,T0* a2){
  1019. T0* R=NULL;
  1020. T0* _previous=NULL;
  1021. /*IF*/if (((((T877*)C))->_rename_list/*12*/)==((void*)(NULL))) {
  1022. R=a2;
  1023. }
  1024. else {
  1025. R=r644to_new_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a2);
  1026. }
  1027. /*FI*//*IF*/if (!(r854empty(((T854*)a1)))) {
  1028. _previous=r854last(((T854*)a1));
  1029. r854remove_last(((T854*)a1));
  1030. R=r877going_down(((T877*)_previous),a1,R);
  1031. }
  1032. /*FI*/return R;
  1033. }
  1034. /*No:PARENT.set_comment*/
  1035. /*No:PARENT.undefine_memory2*/
  1036. T0* r877start_position(T877* C){
  1037. T0* R=NULL;
  1038. R=X291start_position((((T877*)C))->_type/*4*/);
  1039. return R;
  1040. }
  1041. /*No:PARENT.comment*/
  1042. T0* r877do_rename(T877* C,T0* a1){
  1043. T0* R=NULL;
  1044. /*IF*/if (((((T877*)C))->_rename_list/*12*/)==((void*)(NULL))) {
  1045. R=a1;
  1046. }
  1047. else {
  1048. R=r644to_new_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a1);
  1049. }
  1050. /*FI*/return R;
  1051. }
  1052. int r877has_select_for(T877* C,T0* a1){
  1053. int R=0;
  1054. /*IF*/if (((((T877*)C))->_select_list/*28*/)!=((void*)(NULL))) {
  1055. R=r953has(((T953*)((((T877*)C))->_select_list/*28*/)),a1);
  1056. }
  1057. /*FI*/return R;
  1058. }
  1059. /*No:PARENT.export_list*/
  1060. void r877add_rename(T877* C,T0* a1){
  1061. /*IF*/if (((((T877*)C))->_rename_list/*12*/)==((void*)(NULL))) {
  1062. {T644*n=malloc(sizeof(*n));
  1063. *n=M644;
  1064. /*[IRF3.3make*/((((T644*)(n)))->_list)=(se_ma552(1,a1));
  1065. /*]*/
  1066. C->_rename_list=(T0*)n;
  1067. }
  1068. }
  1069. else {
  1070. /*[IRF3.5add_last*/r552add_last(((T552*)((((T644*)((T644*)((((T877*)C))->_rename_list/*12*/))))->_list/*0*/)),a1);
  1071. /*]*/
  1072. }
  1073. /*FI*/}
  1074. /*No:PARENT.us_character*/
  1075. /*No:PARENT.em1*/
  1076. /*No:PARENT.us_real*/
  1077. T0* r877up_to_original(T877* C,T0* a1,T0* a2){
  1078. T0* R=NULL;
  1079. T0* _bc=NULL;
  1080. T0* _old_name=NULL;
  1081. _bc=X291base_class((((T877*)C))->_type/*4*/);
  1082. /*IF*/if (((((T877*)C))->_rename_list/*12*/)==((void*)(NULL))) {
  1083. R=r605up_to_original(((T605*)_bc),a1,a2);
  1084. }
  1085.  else if (r644affect(((T644*)((((T877*)C))->_rename_list/*12*/)),a2)) {
  1086. _old_name=r644to_old_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a2);
  1087. /*IF*/if ((_old_name)!=((void*)(a2))) {
  1088. R=r605up_to_original(((T605*)_bc),a1,_old_name);
  1089. }
  1090. /*FI*/}
  1091. else {
  1092. R=r605up_to_original(((T605*)_bc),a1,a2);
  1093. }
  1094. /*FI*/return R;
  1095. }
  1096. void r877select_conflict(T0* a1,T0* a2){
  1097. r683add_position(X776start_position(a1));
  1098. r683add_position(X776start_position(a2));
  1099. /*[IRF3.6append*/{T0* b1=((T0*)ms14_877);
  1100. r7append(((T7*)(oBC683explanation)),b1);
  1101. }/*]*/
  1102. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1103. }
  1104. T0* r877smallest_ancestor(T877* C,T0* a1){
  1105. T0* R=NULL;
  1106. /*IF*/if (X291is_generic((((T877*)C))->_type/*4*/)) {
  1107. R=X291to_runnable((((T877*)C))->_type/*4*/,a1);
  1108. }
  1109. else {
  1110. R=(((T877*)C))->_type/*4*/;
  1111. }
  1112. /*FI*/return R;
  1113. }
  1114. int r877has(T877* C,T0* a1){
  1115. int R=0;
  1116. /*IF*/if (((((T877*)C))->_rename_list/*12*/)==((void*)(NULL))) {
  1117. R=r605has(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),a1);
  1118. }
  1119. else {
  1120. R=r605has(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),r644to_old_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a1));
  1121. }
  1122. /*FI*/return R;
  1123. }
  1124. void r877missing_select(T0* a1,T0* a2){
  1125. r683add_position(X776start_position(a1));
  1126. r683add_position(X776start_position(a2));
  1127. /*[IRF3.6append*/{T0* b1=((T0*)ms15_877);
  1128. r7append(((T7*)(oBC683explanation)),b1);
  1129. }/*]*/
  1130. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1131. }
  1132. /*No:PARENT.us_bit*/
  1133. /*No:PARENT.fz_09*/
  1134. int r877has_redefine(T877* C,T0* a1){
  1135. int R=0;
  1136. /*IF*/if (((((T877*)C))->_redefine_list/*24*/)!=((void*)(NULL))) {
  1137. R=r953has(((T953*)((((T877*)C))->_redefine_list/*24*/)),a1);
  1138. }
  1139. /*FI*/return R;
  1140. }
  1141. int r877has_undefine(T877* C,T0* a1){
  1142. int R=0;
  1143. /*IF*/if (((((T877*)C))->_undefine_list/*20*/)!=((void*)(NULL))) {
  1144. R=r953has(((T953*)((((T877*)C))->_undefine_list/*20*/)),a1);
  1145. }
  1146. /*FI*/return R;
  1147. }
  1148. T0* r877look_up_for(T877* C,T0* a1,T0* a2){
  1149. T0* R=NULL;
  1150. T0* _f=NULL;
  1151. T0* _fn2=NULL;
  1152. /*IF*/if ((((((T877*)C))->_rename_list/*12*/)==((void*)(NULL)))||(!(r644affect(((T644*)((((T877*)C))->_rename_list/*12*/)),a2)))) {
  1153. _f=X291look_up_for((((T877*)C))->_type/*4*/,a1,a2);
  1154. R=r877apply_undefine(C,_f,a2);
  1155. }
  1156. else {
  1157. _fn2=r644to_old_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a2);
  1158. /*IF*/if ((_fn2)!=((void*)(a2))) {
  1159. _f=X291look_up_for((((T877*)C))->_type/*4*/,a1,_fn2);
  1160. R=r877apply_undefine(C,_f,_fn2);
  1161. }
  1162. else {
  1163. _f=X291look_up_for((((T877*)C))->_type/*4*/,a1,a2);
  1164. /*IF*/if ((_f)==((void*)(NULL))) {
  1165. r683add_position(X776start_position(a2));
  1166. /*[IRF3.6append*/{T0* b1=((T0*)ms143_470);
  1167. r7append(((T7*)(oBC683explanation)),b1);
  1168. }/*]*/
  1169. /*[IRF3.6append*/{T0* b1=X776to_string(a2);
  1170. r7append(((T7*)(oBC683explanation)),b1);
  1171. }/*]*/
  1172. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_877);
  1173. r683fatal_error(((T683*)(oBC364eh)),b1);
  1174. }/*]*/
  1175. }
  1176. /*FI*/}
  1177. /*FI*/}
  1178. /*FI*/return R;
  1179. }
  1180. T0*oBC877forbidden_parent_list=NULL;
  1181. /*No:PARENT.us_boolean*/
  1182. /*No:PARENT.us_double*/
  1183. T0* r877clients_for(T877* C,T0* a1){
  1184. T0* R=NULL;
  1185. T0* _old_fn=NULL;
  1186. /*IF*/if (((((T877*)C))->_rename_list/*12*/)==((void*)(NULL))) {
  1187. /*IF*/if (((((T877*)C))->_export_list/*16*/)==((void*)(NULL))) {
  1188. R=r605clients_for(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),a1);
  1189. }
  1190. else {
  1191. R=r671clients_for(((T671*)((((T877*)C))->_export_list/*16*/)),a1);
  1192. /*IF*/if ((R)==((void*)(NULL))) {
  1193. R=r605clients_for(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),a1);
  1194. }
  1195. /*FI*/}
  1196. /*FI*/}
  1197. else {
  1198. _old_fn=r644to_old_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a1);
  1199. /*IF*/if (((((T877*)C))->_export_list/*16*/)==((void*)(NULL))) {
  1200. R=r605clients_for(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),_old_fn);
  1201. }
  1202. else {
  1203. R=r671clients_for(((T671*)((((T877*)C))->_export_list/*16*/)),_old_fn);
  1204. /*IF*/if ((R)==((void*)(NULL))) {
  1205. R=r605clients_for(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),_old_fn);
  1206. }
  1207. /*FI*/}
  1208. /*FI*/}
  1209. /*FI*/return R;
  1210. }
  1211. void r877set_redefine(T877* C,T0* a1){
  1212. {T953*n=malloc(sizeof(*n));
  1213. *n=M953;
  1214. r953make(n,a1);
  1215. C->_redefine_list=(T0*)n;
  1216. }
  1217. }
  1218. void r877set_undefine(T877* C,T0* a1){
  1219. {T953*n=malloc(sizeof(*n));
  1220. *n=M953;
  1221. r953make(n,a1);
  1222. C->_undefine_list=(T0*)n;
  1223. }
  1224. }
  1225. T0* r877going_up(T877* C,T0* a1,T0* a2,T0* a3){
  1226. T0* R=NULL;
  1227. T0* _bc=NULL;
  1228. _bc=X291base_class((((T877*)C))->_type/*4*/);
  1229. /*IF*/if ((_bc)==((void*)(a2))) {
  1230. R=r877going_down(C,a1,a3);
  1231. }
  1232.  else if (r605is_general(((T605*)_bc))) {
  1233. R=r877going_down(C,a1,a3);
  1234. }
  1235.  else if (r605is_subclass_of(((T605*)_bc),a2)) {
  1236. r854add_last(((T854*)a1),(T0*)C);
  1237. R=r605going_up(((T605*)_bc),a1,a2,a3);
  1238. }
  1239. /*FI*/return R;
  1240. }
  1241. void r877collect_for(T877* C,int a1,T0* a2){
  1242. T0* _fn2=NULL;
  1243. /*IF*/if ((((((T877*)C))->_rename_list/*12*/)==((void*)(NULL)))||(!(r644affect(((T644*)((((T877*)C))->_rename_list/*12*/)),a2)))) {
  1244. r605collect_for(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),a1,a2);
  1245. }
  1246. else {
  1247. _fn2=r644to_old_name(((T644*)((((T877*)C))->_rename_list/*12*/)),a2);
  1248. /*IF*/if ((_fn2)!=((void*)(a2))) {
  1249. r605collect_for(((T605*)(X291base_class((((T877*)C))->_type/*4*/))),a1,_fn2);
  1250. }
  1251. /*FI*/}
  1252. /*FI*/}
  1253. int r877is_a_vncg(T877* C,T0* a1,T0* a2){
  1254. int R=0;
  1255. T0* _t2_bcn=NULL;
  1256. T0* _type_bcn=NULL;
  1257. T0* _t2_bc=NULL;
  1258. T0* _type_bc=NULL;
  1259. T0* _rt=NULL;
  1260. T0* _tfg=NULL;
  1261. T0* _gl2=NULL;
  1262. T0* _gl1=NULL;
  1263. T0* _gl=NULL;
  1264. int _i=0;
  1265. int _rank=0;
  1266. _type_bc=X291base_class((((T877*)C))->_type/*4*/);
  1267. _type_bcn=(((T451*)((T451*)((((T605*)((T605*)_type_bc)))->_base_class_name/*24*/))))->_to_string/*0*/;
  1268. _t2_bc=X291base_class(a2);
  1269. _t2_bcn=(((T451*)((T451*)((((T605*)((T605*)_t2_bc)))->_base_class_name/*24*/))))->_to_string/*0*/;
  1270. /*IF*/if ((_type_bcn)==((void*)(_t2_bcn))) {
  1271. _gl=X291generic_list((((T877*)C))->_type/*4*/);
  1272. _gl2=X291generic_list(a2);
  1273. /*IF*/if (((_gl)==((void*)(NULL)))||((r701count(((T701*)_gl)))!=(r701count(((T701*)_gl2))))) {
  1274. r683add_position(X291start_position((((T877*)C))->_type/*4*/));
  1275. r683add_position(X291start_position(a2));
  1276. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_877);
  1277. r683fatal_error(((T683*)(oBC364eh)),b1);
  1278. }/*]*/
  1279. }
  1280. /*FI*//*IF*/if (X291is_generic(a1)) {
  1281. _gl1=X291generic_list(a1);
  1282. R=1;
  1283. _i=r701count(((T701*)_gl2));
  1284. while (!((!(R))||((_i)==(0)))) {
  1285. /*IF*/if (X291is_formal_generic(r701item(((T701*)_gl),_i))) {
  1286. _tfg=r701item(((T701*)_gl),_i);
  1287. if(NULL!=(_tfg))switch(((T0*)_tfg)->id) {
  1288. case 283: 
  1289. break;
  1290. default:
  1291. _tfg=NULL;
  1292. };_rank=(((T283*)((T283*)_tfg)))->_rank/*8*/;
  1293. R=X291is_a(r701item(((T701*)_gl1),_rank),r701item(((T701*)_gl2),_i));
  1294. }
  1295. else {
  1296. _rt=X291run_type(X291to_runnable(r701item(((T701*)_gl),_i),a1));
  1297. R=X291is_a(_rt,r701item(((T701*)_gl2),_i));
  1298. }
  1299. /*FI*/_i=(_i)-(1);
  1300. }
  1301. }
  1302. else {
  1303. R=X291is_a((((T877*)C))->_type/*4*/,a2);
  1304. }
  1305. /*FI*//*IF*/if (!(R)) {
  1306. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  1307. /*]*/
  1308. r51clear(((T51*)(oBC683positions)));
  1309. /*]*/
  1310. }
  1311. /*FI*/}
  1312.  else if (r605is_subclass_of(((T605*)_type_bc),_t2_bc)) {
  1313. /*IF*/if (X291is_generic(a1)) {
  1314. _rt=X291run_type(X291to_runnable((((T877*)C))->_type/*4*/,a1));
  1315. R=r605is_a_vncg(((T605*)_type_bc),_rt,a2);
  1316. }
  1317. else {
  1318. R=r605is_a_vncg(((T605*)_type_bc),(((T877*)C))->_type/*4*/,a2);
  1319. }
  1320. /*FI*//*IF*/if (!(R)) {
  1321. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  1322. /*]*/
  1323. r51clear(((T51*)(oBC683positions)));
  1324. /*]*/
  1325. }
  1326. /*FI*/}
  1327. /*FI*/return R;
  1328. }
  1329. /*No:PARENT.fatal_error*/
  1330. /*No:PARENT.redefine_list*/
  1331. /*No:PARENT.us_native_array*/
  1332. /*No:PARENT.set_export*/
  1333. T0* r877apply_undefine(T877* C,T0* a1,T0* a2){
  1334. T0* R=NULL;
  1335. int _index=0;
  1336. T0* _fnkey=NULL;
  1337. /*IF*/if (r877has_undefine(C,a2)) {
  1338. _fnkey=X776to_key(a2);
  1339. /*IF*/if (((((T877*)C))->_undefine_memory1/*32*/)==((void*)(NULL))) {
  1340. C->_undefine_memory1=se_ma52(1,_fnkey);
  1341. R=X359try_to_undefine(a1,a2,(((T686*)((T686*)((((T877*)C))->_parent_list/*0*/))))->_base_class/*0*/);
  1342. C->_undefine_memory2=se_ma495(1,R);
  1343. }
  1344. else {
  1345. _index=r52fast_index_of(((T52*)((((T877*)C))->_undefine_memory1/*32*/)),_fnkey);
  1346. /*IF*/if ((_index)>((((T52*)((T52*)((((T877*)C))->_undefine_memory1/*32*/))))->_upper/*8*/)) {
  1347. r52add_last(((T52*)((((T877*)C))->_undefine_memory1/*32*/)),_fnkey);
  1348. R=X359try_to_undefine(a1,a2,(((T686*)((T686*)((((T877*)C))->_parent_list/*0*/))))->_base_class/*0*/);
  1349. r495add_last(((T495*)((((T877*)C))->_undefine_memory2/*36*/)),R);
  1350. }
  1351. else {
  1352. R=r495item(((T495*)((((T877*)C))->_undefine_memory2/*36*/)),_index);
  1353. }
  1354. /*FI*/}
  1355. /*FI*/}
  1356. else {
  1357. R=a1;
  1358. }
  1359. /*FI*/return R;
  1360. }
  1361. /*No:PARENT.undefine_list*/
  1362. T0*oBC670std_fr1=NULL;
  1363. int r670is_readable(T0* a1){
  1364. int R=0;
  1365. r675connect_to(((T675*)(oBC670std_fr1)),a1);
  1366. R=/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC670std_fr1))))->_path/*4*/)!=(NULL)/*)*/;
  1367. /*IF*/if (R) {
  1368. r675disconnect(((T675*)(oBC670std_fr1)));
  1369. }
  1370. /*FI*/return R;
  1371. }
  1372. /*No:CALL_INFIX_OR_ELSE.arguments*/
  1373. void r278short(T278* C){
  1374. /*IF*/if ((X662precedence((((T278*)C))->_target/*8*/))==(13)) {
  1375. X662short((((T278*)C))->_target/*8*/);
  1376. /*[IRF3.6short_print_feature_name*/{T278* C1=C;
  1377. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T278*)C1))->_feature_name/*24*/);
  1378. }/*]*/
  1379. /*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  1380. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/);
  1381. }
  1382.  else if ((4)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/))) {
  1383. X662bracketed_short(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/);
  1384. }
  1385. else {
  1386. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/);
  1387. }
  1388. /*FI*/}
  1389.  else if ((X662precedence((((T278*)C))->_target/*8*/))<(4)) {
  1390. X662bracketed_short((((T278*)C))->_target/*8*/);
  1391. /*[IRF3.6short_print_feature_name*/{T278* C1=C;
  1392. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T278*)C1))->_feature_name/*24*/);
  1393. }/*]*/
  1394. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/);
  1395. }
  1396. else {
  1397. X662short((((T278*)C))->_target/*8*/);
  1398. /*[IRF3.6short_print_feature_name*/{T278* C1=C;
  1399. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T278*)C1))->_feature_name/*24*/);
  1400. }/*]*/
  1401. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/);
  1402. }
  1403. /*FI*/}
  1404. T0* r278add_comment(T278* C,T0* a1){
  1405. T0* R=NULL;
  1406. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1407. R=(T0*)C;
  1408. }
  1409. else {
  1410. {T529*n=malloc(sizeof(*n));
  1411. *n=M529;
  1412. r529make(n,(T0*)C,a1);
  1413. R=(T0*)n;
  1414. }
  1415. }
  1416. /*FI*/return R;
  1417. }
  1418. int r278to_integer(T278* C){
  1419. int R=0;
  1420. r278error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T278*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  1421. return R;
  1422. }
  1423. void r278bracketed_short(T278* C){
  1424. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  1425. r278short(C);
  1426. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  1427. }
  1428. int r278is_a(T278* C,T0* a1){
  1429. int R=0;
  1430. R=X291is_a(X291run_type((((T278*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  1431. /*IF*/if (!(R)) {
  1432. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T278*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  1433. r278error(X662start_position(a1),((T0*)ms4_662));
  1434. }
  1435. /*FI*/return R;
  1436. }
  1437. /*No:CALL_INFIX_OR_ELSE.is_current*/
  1438. void r278make(T278* C,T0* a1,T0* a2,T0* a3){
  1439. T0* _eal=NULL;
  1440. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  1441. r683add_position(a2);
  1442. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  1443. r683fatal_error(((T683*)(oBC364eh)),b1);
  1444. }/*]*/
  1445. }
  1446. /*FI*/{T454*n=malloc(sizeof(*n));
  1447. *n=M454;
  1448. r454make(n,r278operator(),a2);
  1449. C->_feature_name=(T0*)n;
  1450. }
  1451. {T431*n=malloc(sizeof(*n));
  1452. *n=M431;
  1453. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  1454. /*]*/
  1455. _eal=(T0*)n;
  1456. }
  1457. r278make_call_1(C,a1,(((T278*)C))->_feature_name/*24*/,_eal);
  1458. }
  1459. /*No:CALL_INFIX_OR_ELSE.nb_errors*/
  1460. /*No:CALL_INFIX_OR_ELSE.feature_name*/
  1461. /*No:CALL_INFIX_OR_ELSE.fz_iinaiv*/
  1462. /*No:CALL_INFIX_OR_ELSE.run_feature*/
  1463. /*No:CALL_INFIX_OR_ELSE.start_position*/
  1464. /*No:CALL_INFIX_OR_ELSE.us_or_else*/
  1465. /*No:CALL_INFIX_OR_ELSE.target*/
  1466. /*No:CALL_INFIX_OR_ELSE.precedence*/
  1467. T0* r278to_runnable(T278* C,T0* a1){
  1468. T0* R=NULL;
  1469. T0* _tla=NULL;
  1470. T0* _a=NULL;
  1471. /*IF*/if (((((T278*)C))->_current_type/*4*/)==((void*)(NULL))) {
  1472. r278to_runnable_0(C,a1);
  1473. _a=r431to_runnable(((T431*)((((T278*)C))->_arguments/*20*/)),a1);
  1474. /*IF*/if ((_a)==((void*)(NULL))) {
  1475. r278error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
  1476. }
  1477. else {
  1478. C->_arguments=_a;
  1479. }
  1480. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1481. r431match_with(((T431*)((((T278*)C))->_arguments/*20*/)),(((T278*)C))->_run_feature/*12*/);
  1482. }
  1483. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1484. _tla=(((T278*)C))->_result_type/*16*/;
  1485. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1486. case 239: 
  1487. break;
  1488. default:
  1489. _tla=NULL;
  1490. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  1491. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T278*)C))->_arguments/*20*/)))/*)*/));
  1492. }
  1493. /*FI*/}
  1494. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1495. R=(T0*)C;
  1496. }
  1497. /*FI*/}
  1498. else {
  1499. R=r278twin(C);
  1500. /*[IRF3.3set_current_type*/((((T278*)(((T278*)R))))->_current_type)=(NULL);
  1501. /*]*/
  1502. R=r278to_runnable(((T278*)R),a1);
  1503. }
  1504. /*FI*/return R;
  1505. }
  1506. /*No:CALL_INFIX_OR_ELSE.short_print_feature_name*/
  1507. /*No:CALL_INFIX_OR_ELSE.result_type*/
  1508. T0* r278twin(T278* C){
  1509. T0* R=NULL;
  1510. R=malloc(sizeof(*C));
  1511. *((T278*)R)=*C;
  1512. return R;
  1513. }
  1514. /*No:CALL_INFIX_OR_ELSE.set_current_type*/
  1515. T0* r278operator(void){
  1516. T0* R=NULL;
  1517. R=((T0*)ms42_473);
  1518. return R;
  1519. }
  1520. /*No:CALL_INFIX_OR_ELSE.atomic_precedence*/
  1521. /*No:CALL_INFIX_OR_ELSE.current_type*/
  1522. void r278make_call_1(T278* C,T0* a1,T0* a2,T0* a3){
  1523. C->_target=a1;
  1524. C->_feature_name=a2;
  1525. C->_arguments=a3;
  1526. }
  1527. /*No:CALL_INFIX_OR_ELSE.is_manifest_string*/
  1528. /*No:CALL_INFIX_OR_ELSE.is_void*/
  1529. void r278to_runnable_0(T278* C,T0* a1){
  1530. C->_current_type=a1;
  1531. r278cpc_to_runnable(C,a1);
  1532. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T278*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  1533. /*IF*/if (((((T278*)C))->_result_type/*16*/)==((void*)(NULL))) {
  1534. r683add_position(X496start_position((((T278*)C))->_run_feature/*12*/));
  1535. r278error((((T454*)((T454*)((((T278*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  1536. }
  1537.  else if (X291is_like_current((((T278*)C))->_result_type/*16*/)) {
  1538. C->_result_type=X662result_type((((T278*)C))->_target/*8*/);
  1539. }
  1540. /*FI*/}
  1541. void r278cpc_to_runnable(T278* C,T0* a1){
  1542. T0* _rc=NULL;
  1543. T0* _t=NULL;
  1544. _t=X662to_runnable((((T278*)C))->_target/*8*/,a1);
  1545. /*IF*/if ((_t)==((void*)(NULL))) {
  1546. r683add_position(X662start_position((((T278*)C))->_target/*8*/));
  1547. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1548. r683fatal_error(((T683*)(oBC364eh)),b1);
  1549. }/*]*/
  1550. }
  1551. /*FI*/C->_target=_t;
  1552. _rc=X291run_class(X662result_type((((T278*)C))->_target/*8*/));
  1553. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  1554. r576update((((T278*)C))->_target/*8*/,(((T278*)C))->_run_feature/*12*/);
  1555. }
  1556. void r278error(T0* a1,T0* a2){
  1557. r683add_position(a1);
  1558. r683error(((T683*)(oBC364eh)),a2);
  1559. }
  1560. /*No:CALL_INFIX_OR_ELSE.fatal_error*/
  1561. /*No:CALL_INFIX_OR_ELSE.fz_bad_argument*/
  1562. void r278short_target(T278* C){
  1563. r278bracketed_short(C);
  1564. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  1565. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  1566. }/*]*/
  1567. }
  1568. /*No:CALL_INFIX_OR_ELSE.arg1*/
  1569. void r767short(T767* C){
  1570. r580a_prefix_name(((T580*)(oBC364short_print)),(((T767*)C))->_feature_name/*20*/);
  1571. /*IF*/if ((X662precedence((((T767*)C))->_target/*8*/))<(11)) {
  1572. X662bracketed_short((((T767*)C))->_target/*8*/);
  1573. }
  1574. else {
  1575. X662short((((T767*)C))->_target/*8*/);
  1576. }
  1577. /*FI*/}
  1578. T0* r767add_comment(T767* C,T0* a1){
  1579. T0* R=NULL;
  1580. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1581. R=(T0*)C;
  1582. }
  1583. else {
  1584. {T529*n=malloc(sizeof(*n));
  1585. *n=M529;
  1586. r529make(n,(T0*)C,a1);
  1587. R=(T0*)n;
  1588. }
  1589. }
  1590. /*FI*/return R;
  1591. }
  1592. int r767to_integer(T767* C){
  1593. int R=0;
  1594. T0* _rf1=NULL;
  1595. _rf1=(((T767*)C))->_run_feature/*12*/;
  1596. if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
  1597. case 808: 
  1598. break;
  1599. default:
  1600. _rf1=NULL;
  1601. };/*IF*/if ((_rf1)==((void*)(NULL))) {
  1602. r767error(/*(IRF4.6start_position*/(((T406*)((T406*)((((T767*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  1603. }
  1604. else {
  1605. R=X662to_integer((((T808*)((T808*)_rf1)))->_value/*44*/);
  1606. }
  1607. /*FI*/return R;
  1608. }
  1609. void r767bracketed_short(T767* C){
  1610. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  1611. r767short(C);
  1612. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  1613. }
  1614. int r767is_a(T767* C,T0* a1){
  1615. int R=0;
  1616. R=X291is_a(X291run_type((((T767*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  1617. /*IF*/if (!(R)) {
  1618. r683add_position(/*(IRF4.6start_position*/(((T406*)((T406*)((((T767*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/);
  1619. r767error(X662start_position(a1),((T0*)ms4_662));
  1620. }
  1621. /*FI*/return R;
  1622. }
  1623. /*No:CALL_PREFIX_PLUS.is_current*/
  1624. void r767make(T767* C,T0* a1,T0* a2){
  1625. {T406*n=malloc(sizeof(*n));
  1626. *n=M406;
  1627. r406make(n,r767operator(),a1);
  1628. C->_feature_name=(T0*)n;
  1629. }
  1630. r767make_call0(C,a2,(((T767*)C))->_feature_name/*20*/);
  1631. }
  1632. /*No:CALL_PREFIX_PLUS.nb_errors*/
  1633. /*No:CALL_PREFIX_PLUS.feature_name*/
  1634. /*No:CALL_PREFIX_PLUS.fz_iinaiv*/
  1635. /*No:CALL_PREFIX_PLUS.run_feature*/
  1636. /*No:CALL_PREFIX_PLUS.start_position*/
  1637. /*No:CALL_PREFIX_PLUS.target*/
  1638. /*No:CALL_PREFIX_PLUS.precedence*/
  1639. T0* r767to_runnable(T767* C,T0* a1){
  1640. T0* R=NULL;
  1641. /*IF*/if (((((T767*)C))->_current_type/*4*/)==((void*)(NULL))) {
  1642. r767to_runnable_0(C,a1);
  1643. /*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T767*)C))->_run_feature/*12*/))>(0))) {
  1644. r683add_position((((T406*)((T406*)((((T767*)C))->_feature_name/*20*/))))->_start_position/*8*/);
  1645. r767error(X496start_position((((T767*)C))->_run_feature/*12*/),((T0*)ms1_752));
  1646. }
  1647. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1648. R=(T0*)C;
  1649. }
  1650. /*FI*/}
  1651. else {
  1652. R=r767twin(C);
  1653. /*[IRF3.3set_current_type*/((((T767*)(((T767*)R))))->_current_type)=(NULL);
  1654. /*]*/
  1655. R=r767to_runnable(((T767*)R),a1);
  1656. }
  1657. /*FI*/return R;
  1658. }
  1659. /*No:CALL_PREFIX_PLUS.result_type*/
  1660. T0* r767twin(T767* C){
  1661. T0* R=NULL;
  1662. R=malloc(sizeof(*C));
  1663. *((T767*)R)=*C;
  1664. return R;
  1665. }
  1666. /*No:CALL_PREFIX_PLUS.set_current_type*/
  1667.  
  1668.